package chapter04.s07exception;

// finally
// 有时候会希望有些语句无论程序是否发生异常都要执行
// 这时就可以在try…catch语句后，加一个finally代码块

// 总结：执行顺序
// 1. try 遇到异常后转catch
// 2. catch
// 3. finally 无论是否发生异常，finally 代码块中的代码总会被执行

public class Example26 {
    public static void main(String[] args) {
        //下面的代码定义了一个try…catch…finally语句用于捕获异常
        try {
            int result = divide(4, 0);       //调用divide()方法
            System.out.println(result);
        } catch (Exception e) {               //对捕获到的异常进行处理
            System.out.println("捕获的异常信息为：" + e.getMessage());
            // return 之前会执行finally
            return;
        } finally {
            // 不论程序是发生异常还是使用return语句结束，finally中的语句都会执行
            // 在程序设计时，通常会使用finally代码块处理完成必须做的事情，如释放系统资源
            System.out.println("进入finally代码块");
        }
        System.out.println("程序继续向下执行…");
    }

    //下面的方法实现了两个整数相除
    public static int divide(int x, int y) {
        int result = x / y;           //定义一个变量result记录两个数相除的结果
        return result;                 //将结果返回
    }
}
